import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

// 处理 get 请求

// HttpServlet 就是 Servlet 依赖里的类

// 这个注解是把当前这个类 和 URL 路径里带有 /hello 的 HTTP 请求关联起来
// 意思是, 对于 URL 的路径里有 /hello 的请求, Tomcat 服务器才会调用这个类
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    // 重写 HttpServlet 的方法

    // doGet , Get 对应 HTTP 的 GET 方法
    // 这个方法在 Tomcat 服务器收到 HTTP GET 请求时, 会被 Tomcat 调用到 (回调函数)
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // HttpServletRequest  代表一个 HTTP 请求
        // HttpServletResponse 代表一个 HTTP 响应
        // 服务器的工作流程:
        // 1. 接收请求并解析
        // 2. 根据请求计算响应 (这对应我们的代码)
        // 3. 构造响应数据, 返回给客户端
        // 1, 3 Tomcat 帮我们做好了

        // 干掉自带的代码
        // super.doGet(req, resp);

        // 这是在服务器的控制台打印
        System.out.println("Hello World");

        // 在页面上打印
        // 把 Hello World 字符串, 放到 http 响应的 body 中
        // 浏览器就会将 body 的内容显示到页面上
        resp.getWriter().write("Hello World " + System.currentTimeMillis() + " " + new Date(System.currentTimeMillis()));
        // getWriter 返回一个 Writer 字符流对象
        // 这里的 Writer对象, 是往HTTP响应的 body 里写入数据
    }

    // 处理, HTTP 的 POST 请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
